/*
 * FSWUniCEUB - 2008
 * 
 * Este arquivo é de propriedade da Fábrica de Software do UniCEUB
 * 
 * Para mais informações entre em contato com a coordenação do
 * curso de Ciência da Computação da instituição.
 */

package br.uniceub.fsw.talentos.bo;

import br.uniceub.fsw.arquitetura.servico.exception.NegocioException;
import br.uniceub.fsw.talentos.dao.TipoOcorrenciaDAO;
import br.uniceub.fsw.talentos.vo.TipoOcorrenciaVO;

/**
 * Business Object da entidade TipoOcorrencia. Essa classe é responsável por todos as
 * funcionalidades de negócio relacionadas à entidade.
 * 
 * @author Bruno Schifer Bernardi 2026545/5
 */
public class TipoOcorrenciaBO {

    TipoOcorrenciaDAO tipoOcorrenciaDAO = new TipoOcorrenciaDAO();
    
    /**
     * Valida se já existe um registro do TipoOcorrencia no Banco de Dados como verificação para inserção.
     * 
     * @param tipoOcorrencia tipoOcorrencia a ser verificado.
     * @throws br.uniceub.fsw.arquitetura.servico.exception.RegraNegocioException caso o TipoOcorrencia 
     * informado não possua nome para a verificação ou já exista um TipoOcorrencia com o mesmo nome no banco de dados.
     */
    public void validarVOUnico(TipoOcorrenciaVO tipoOcorrencia) throws NegocioException {
        
        if(tipoOcorrencia.getNoOcorrencia() == null || tipoOcorrencia.getNoOcorrencia().isEmpty())
            throw new NegocioException("Nome do tipo de ocorrencia não foi informado");
        
        TipoOcorrenciaVO tipoOcorrenciaExemplo = new TipoOcorrenciaVO();
        tipoOcorrenciaExemplo.setNoOcorrencia(tipoOcorrencia.getNoOcorrencia());
        
        if(!tipoOcorrenciaDAO.consultarPorExemplo(tipoOcorrenciaExemplo).isEmpty())
            throw new NegocioException("Já existe um tipo de ocorrencia de nome " + tipoOcorrencia.getNoOcorrencia() +
                " na base de dados");    
    }
}